1POKE 17115, 20 
2TEXT 
5HOME 
6ONERR GOTO 7000 
7LOMEM :30000 
10 d$=CHR$(4) 
15? d$; "bload X10,A29000" 
20? 
25HTAB (6):? "X-10 HOME CONTROLLER" 
30HTAB (5):? "AWAUG 1989 by MINH TA" 
40CALL 29000 
100GOSUB 8000 
120GOTO 5000 
125VTAB (19):HTAB (5):? "Enter command ? :"; CHR$(7); 
135GET key$ 
140IF key$=CHR$(129) THEN 1000 
150IF key$=CHR$(130) THEN 2000 
160IF key$=CHR$(131) THEN 3000 
170IF key$=CHR$(132) THEN 4000 
180IF key$=CHR$(133) THEN 5000 
190IF key$=CHR$(134) THEN 6000 
200GOTO 135 
400VTAB (15):END 
500POKE 29044, 255 
510FOR y=1 TO 16 
520CALL 29037 
530NEXT y 
540RETURN 
600FOR x=29149 TO 29154 
610 d=PEEK(x) 
620POKE 29044, d 
630CALL 29037 
640NEXT x 
650RETURN 
1000GOSUB 5010 
1003POKE 29150, 2 
1005VTAB (19):HTAB (5):? CHR$(7); 
1010INPUT "Enter Module Number :"; a 
1020IF a<1 OR a>16 THEN 1600 
1030IF a<9 THEN 1200 
1040GOSUB 1300 
1050POKE 29152, a 
1060POKE 29153, 0 
1070CALL 29073 
1075GOSUB 500 
1080GOSUB 600 
1090GOTO 7000 
1200GOSUB 1300 
1210POKE 29152, 0 
1220POKE 29153, a 
1230GOTO 1070 
1300IF a=1 THEN a=128 
1301IF a=2 THEN a=64 
1302IF a=3 THEN a=32 
1303IF a=4 THEN a=16 
1304IF a=5 THEN a=8 
1305IF a=6 THEN a=4 
1306IF a=7 THEN a=2 
1307IF a=7 THEN a=1 
1310RETURN 
1600HTAB (10):FLASH 
1610? "ERROR DATA"; CHR$(7); 
1620FOR z=1 TO 1000:NEXT z 
1630HTAB (10):NORMAL 
1640? " "; 
1650VTAB (19):HTAB (5) 
1660? " " 
1670GOTO 1005 
2000GOSUB 5010 
2005POKE 29150, 3 
2010GOTO 1005 
3000GOSUB 5010 
3003VTAB (19):HTAB (5):? CHR$(7); 
3005? " ":HTAB (5) 
3010INPUT "Dimmer level (0-15) ?:"; l 
3020 l=16*l 
3030POKE 29150, l+5 
3040GOTO 1005 
4000END 
5000GOSUB 5010 
5005GOTO 7000 
5010POKE 29025, 12 
5015GOSUB 500 
5020POKE 29044, 4 
5030CALL 29037 
5040CALL 29019 
5050 z=29103 
5060 k=PEEK(z) 
5070IF k=255 THEN z=z+1:GOTO 5060 
5080IF PEEK(z)<>1 THEN 7000 
5100VTAB (5):HTAB (7) 
5135 d=PEEK(z+3) 
5140IF d=1 THEN ? "Monday"; 
5150IF d=2 THEN ? "Tuesday"; 
5160IF d=4 THEN ? "Wednesday"; 
5170IF d=8 THEN ? "Thursday"; 
5180IF d=16 THEN ? "Friday"; 
5190IF d=32 THEN ? "Saturday"; 
5200IF d=64 THEN ? "Sunday"; 
5210 h=PEEK(z+2) 
5220IF h>12 THEN h=h-12 
5230HTAB (17):? h; ":"; 
5240 m=PEEK(z+1) 
5250IF m<10 THEN ? "0"; 
5260? m; 
5270IF PEEK(z+2)>12 THEN ? " PM"; 
5280IF PEEK(z+2)<12 THEN ? " AM"; 
5290RETURN 
6000HOME 
6010POKE 17115, 240 
6015TEXT 
6020VTAB (12) 
6030? " PROGRAM TERMINATED by USER" 
6040? " THANKYOU" 
6050? CHR$(7) 
6060LOMEM :28000 
6070NEW 
6080END 
7000VTAB (19):? " " 
7010VTAB (20):? " " 
7020GOTO 125 
8000VTAB (21):? 
8010? " "; 
8020INVERSE:? " I "; :NORMAL:? " "; 
8030INVERSE:? " II "; :NORMAL:? " "; 
8040INVERSE:? " III"; :NORMAL:? " "; 
8050INVERSE:? " IV "; :NORMAL:? " "; 
8060INVERSE:? " V "; :NORMAL:? " "; 
8070INVERSE:? " VI "; :NORMAL:? " "; 
8080? " "; 
8090INVERSE:? " ON "; :NORMAL:? " "; 
8100INVERSE:? " OFF"; :NORMAL:? " "; 
8110INVERSE:? " DIM"; :NORMAL:? " "; 
8120INVERSE:? "PROG"; :NORMAL:? " "; 
8130INVERSE:? "TIME"; :NORMAL:? " "; 
8140INVERSE:? "QUIT"; :NORMAL:? " "; 
8150RETURN 

